package hot_100;

import java.util.List;

/**
 * @author: Darven
 * @createTime: 2025-10-02  00:46
 * @description: TODO
 */
public class P24 {
//    public ListNode swapPairs(ListNode head) {
//        if(head==null||head.next==null){
//            return head;
//        }
//        ListNode d=new ListNode(0);
//        d.next=head;
//        ListNode prev=d;
//
//        while (prev.next!=null&&prev.next.next!=null){
//            ListNode first=prev.next;
//            ListNode second=prev.next.next;
//
//            first.next=second.next;
//            second.next=first;
//            prev.next=second;
//
//            prev=first;
//        }
//
//        return d.next;
//    }

    public ListNode swapPairs(ListNode head) {
        if(head==null||head.next==null){
            return head;
        }
        // 假设1 2 3 4
        // 存储当前的head.next 也就是保存两个量在一层  1和2 3和4
        ListNode tmp=head.next;
        // 直接跳到3,等3和4处理完成然后1去连接
        head.next = swapPairs(tmp.next);
        // 最后4连接3
        tmp.next=head;
        return tmp;
    }
}
